<?php
	/**
	 * Klass LOGIN CONTROLLER - Används för att kontrollera om användaren är inloggad eller inte.
	 * Controllern bestämmer vad som ska skrivas ut till användaren genom att "prata" med vyn och handlern. 
	 */
	class LoginController {
		
		//----- FUNKTION: DO LOG IN CONTROLL ----------------------------------------------------------------------------------------
		/**
	 	* DoLogInControll är till för att kontrollera vilket tillstånd användaren befinner sig i: 1.Inloggad, 2.Utloggad, 3.Vill logga in, 4.Vill logga ut.
		* @param LoginHandler $loginHandler Innehåller ett Login Handler objekt.
		* @param LoginView $loginView Innehåller ett Login View objekt.
		* @return string $returnstring innehåller den HTML-kod som ska skrivas ut till användaren.		
	 	*/
		public function DoLogInControll(LoginHandler $loginHandler, LoginView $loginView)
		{
			$returnstring = "";			
			$message = LoginView::EMPTY_MESSAGE;
			$loginActionView = new LoginActionView(); 	

			
			// Vi börjar med att anropa User Is Logged In i loginHandler för att kontrollera om användaren är inloggad.
			// Är användaren inloggad så anropar vi Tried To Log Out för att se om användaren försökt logga ut (klickat på logga ut knappen.).
			// Har användaren klickat på logga ut knappen anropar vi funktionen User Logs Out som loggar ut användaren. 
			// Vi skickar även med en variabel som innehåller en siffra som representerar ett visst tillstånd i applikationen som senare översätta i LoginView.
			// Har användaren inte försökt logga ut så är han/hon inloggad och ett meddelande skrivs ut.
			if ($loginHandler->UserIsLoggedIn()){
				
				if ($loginView->TriedToLogOut()) {
						
					$loginHandler->UserLogsOut();
					$message = LoginView::USER_LOGS_OUT;
										
				} else{
					$message = LoginView::USER_IS_LOGGED_IN;
				}
			} else {
				if ($loginView->TriedToLogIn()){
					
					// Vi hämtar användarnamn och lösenord från formuläret (genom metoderna Get Username och Get Password i loginView) och lägger i varsin variabel.	
					$userName = $loginView->GetUserName();
					$password = $loginView->GetPassword();
					
					// Vi försöker logga in med uppgifterna som vi hämtade ut från formuläret. 
					if ($loginHandler->UserLogsIn($userName, $password)) {
						
						// Kontrollerar om användaren vill bli ihågkommen, genom att anropa Get Remenber Me. 
						// Vill han/hon det så skickar vi med användarnamn och lösenord till funktionen Remeber Me som sparar uppgifterna i COOKIES.
						if ($loginView->GetRememberMe()){
							$loginView->RememberMe($userName, $password);							
						}	
						$message = LoginView::SUCCESS_LOGGIN;
						header("Location: loginPages/myPages.php");							
					} else {
						$message = LoginView::WRONG_PASSWORD_N_USER;						 
					}
				}				
			}
			
			// Är användaren inloggad/utloggad så skrivs ett "uloggningsformulär"/"inloggningsformulär" ut. 
			// Genom att vi anropar funktoin Create Logout Box/Create Log In Box, som har en inparameter, $message, vars innehåll beror på vilket tillstånd funktionen är i.
			
			if ($loginHandler->UserIsLoggedIn()) {

			} else {
				$returnstring = $loginView->CreateLogInBox($message);
			}	
			return $returnstring;
		}
	}	
?>